本发明是一种基于SQL的数据权限控制方法,包括以下步骤:步骤1:将SQL语句解析出需要进行数据权限控制的数据表;步骤2:根据预定控制规则和当前登录用户的信息,将解析出的数据表的表名转换为子查询SQL;步骤3:替换原始SQL中对应的数据表的表名为子查询SQL,并结合解析出的数据表的位置得出最终带有权限的SQL语句。本发明与现有技术相比,既不需要为不同角色开发多个类似的功能点,也不需要为了某个数据维护一套数据权限配置表,通过该方法可以达到对任何数据表都能配置出所需的访问权限。开发人员在编写SQL时无需关心数据权限。减少了开发的工作量。并且对于数据权限的变更也能通过改变控制规则来实现,能快速响应客户对于数据权限变更的要求。1.一种基于SQL的数据权限控制方法,其特征在于,包括以下步骤:步骤1:将SQL语句解析出需要进行数据权限控制的数据表;步骤2:根据预定控制规则和当前登录用户的信息,将解析出的数据表的表名转换为子查询SQL;步骤3:替换原始SQL中对应的数据表的表名为子查询SQL,并结合解析出的数据表的位置得出最终带有权限的SQL语句;其中控制规则包括以下属性:数据表,表明该控制规则适用的数据表;规则适用条件,当该条件满足时,才使用该规则;控制语句,编写SQL条件语句,用于过滤数据表的数据,达到数据权限控制的目的;分组标记,相同分组标记的控制规则以“OR”连接,不同分组标记的控制规则以“AND”连接;所述步骤2包括以下子步骤:步骤21:将解析出的数据表的表名与所述预定控制规则匹配:对于没有匹配的控制规则的,执行步骤22:子查询SQL直接使用该表名;对于有匹配的控制规则的,执行步骤23:将用户信息代入所述预定控制规则的适用条件中,判断适用条件是否成立:步骤24:对于适用条件成立的控制规则,将控制规则中的SQL条件用控制规则的分组标记连接起来;步骤25:将上述用分组标记连接起来的SQL条件串转换成表名的子查询SQL。